Conventional microservice architectures are used to structure applications as a collection of services. Generally, decomposing an application into a collection of services results in deploying features of the application in independent modules that may be independently developed and tested. The services in the collection of services are typically able to interact using one or more standard interfaces, such as Application Programming Interfaces (APIs), to exchange information. One of the advantages provided by microservice architectures is that development is generally simplified by decomposing the features of applications into components that are smaller in size, which are more easily designed and tested.
Tracing is a technique that is used to identify performance issues and faults regarding an application. Tracing typically includes logging information about the application's execution for debugging purposes while developing the application or after release of the application when an error occurs. The logged information may include information regarding low-level messages and/or events corresponding to the application that are useful for debugging. Software tracing may be performed in a variety of ways, at the kernel-level and/or user-level, such as via tracing macros, debugger outputs, kernel markers, systems logs, and tracing frameworks.